﻿using SportsPlatform.Dto.PermissionManagement.CompanyInfo;
using SportsPlatform.Base;
using SportsPlatform.Query.PermissionManagement.BaseQuery;
using SportsPlatform.Query.PermissionManagement.CompanyInfo;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace SportsPlatform.PermissionManagement.IPermissionManagement
{
    /// <summary>
    /// 公司信息表
    /// </summary>
    public interface ICompanyInfoService
    {
        /// <summary>
        /// 根据Id查询信息
        /// </summary>
        /// <param name="deleteOrQueryModel"></param>
        /// <returns></returns>
        Task<ResultDto<GetCompanyInfoDto>> GetCompanyInfo(DeleteOrGetModelQuery deleteOrQueryModel);

        /// <summary>
        /// 分页获取信息List
        /// </summary>
        /// <param name="getCompanyInfoQuery"></param>
        /// <returns></returns>
        Task<PagePagingDto<GetCompanyInfoListPageDto>> GetCompanyInfoListPage(GetCompanyInfoListPageQuery getCompanyInfoQuery);

        /// <summary>
        /// 新增信息
        /// </summary>
        /// <param name="addCompanyInfoQuery"></param>
        /// <returns></returns>
        Task<ResultDto<AddCompanyInfoDto>> AddCompanyInfo(AddCompanyInfoQuery addCompanyInfoQuery);

        /// <summary>
        /// 更新信息
        /// </summary>
        /// <param name="updateCompanyInfoQuery"></param>
        /// <returns></returns>
        Task<BaseResultDto> UpdateCompanyInfo(UpdateCompanyInfoQuery updateCompanyInfoQuery);

        /// <summary>
        /// 根据Id删除信息
        /// </summary>
        /// <param name="deleteOrQueryModel"></param>
        /// <returns></returns>
        Task<BaseResultDto> DeleteCompanyInfo(DeleteOrGetModelQuery deleteOrQueryModel);

        /// <summary>
        /// 是否启用
        /// </summary>
        /// <param name="isStatesModel"></param>
        /// <returns></returns>
        Task<BaseResultDto> IsStatesCompanyInfo(IsStatesdModel isStatesModel);

        /// <summary>
        /// 更新审核信息
        /// </summary>
        /// <param name="approvalCompanyInfoQuery"></param>
        /// <returns></returns>
        Task<BaseResultDto> ApprovalCompanyInfo(ApprovalCompanyInfoQuery approvalCompanyInfoQuery);

        /// <summary>
        /// 续期
        /// </summary>
        /// <param name="companyRenewalQuery"></param>
        /// <returns></returns>
        Task<BaseResultDto> CompanyRenewal(CompanyRenewalQuery companyRenewalQuery);

        ///// <summary>
        ///// 获取信息List
        ///// </summary>
        ///// <param name="getCompanyInfoQuery"></param>
        ///// <returns></returns>
        //Task<PagePagingDto<GetCompanyInfoDto>> GetCompanyInfoListPage(GetCompanyInfoPageQuery getCompanyInfoQuery);

        /// <summary>
        /// 获取商户名称集合
        /// </summary>
        /// <returns></returns>
        Task<ResultListDto<GetCompanyNameListDto>> GetCompanyNameList();
    }
}
